const app = getApp()
Page({
  data: {
    reviews: [],
    id: '',
    hasMore: true,
    page: 1,
    size: 20
  },
  // 点击跳转到影评详情页
  // 先将dataset对象数据转成string，并encode处理传递，防止(?XX)参数错误
  // 传递后从options获取数据，decode处理，再JSON.parse()转为对象
  bindNavigateTo: function (e) {
    let targetData = JSON.stringify(e.currentTarget.dataset.review)
    wx.navigateTo({
      url: '../review/review?review=' + encodeURIComponent(targetData)
    })
  },
  loadMore: function () {
    let _this = this
    if (!_this.data.hasMore) {
      return
    }
    // 获取影评
    app.douban.findComments('reviews', _this.data.id, _this.data.page++, _this.data.size, function (res) {
      // 若获取条数等于默认20条，则还有数据，loading继续
      if (res.data.reviews.length && (res.data.reviews.length === _this.data.size)) {
        _this.setData({
          reviews: _this.data.reviews.concat(res.data.reviews)
        })
      }
      // 若获取条数小于默认20条，则没有跟多数据，loading结束
      else if (res.data.reviews.length && (res.data.reviews.length < _this.data.size)) {
        _this.setData({
          reviews: _this.data.reviews.concat(res.data.reviews),
          hasMore: false
        })
      }
      else {
        _this.setData({
          hasMore: false
        })
      }
    })
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    this.setData({
      id: options.id
    })
    this.loadMore()
  },

  onReachBottom: function () {
    this.loadMore()
  }
})